package com.kaifamiao.charstreams;

import java.io.*;
import java.nio.charset.Charset;

/**
 * OutputStreamWriter是字符流通向字节流的桥梁：
 *      可使用指定的charset将要写入流中的字符编码成字节。
 *      它使用的字符集可以由名称指定或显式给定，否则将接受平台默认的字符集。
 *      OutputStreamWriter(OutputStream out)
 *      OutputStreamWriter(OutputStream out, Charset cs)
 *      OutputStreamWriter(OutputStream out, CharsetEncoder enc)
 *      OutputStreamWriter(OutputStream out, String charsetName)
 * 通常我们将 InputStreamReader 和 OutputStreamWriter 称作 `转换流`
 */
public class OutputStreamWriterTest {

    public static void main(String[] args) throws IOException {
        // 创建一个可以向指定文件中输出数据的字节输出流
        OutputStream out = new FileOutputStream( "osw.txt" );
        Charset charset = Charset.forName( "GBK" );
        // 用给定字符集的将 字符输出流 转换为 字节输出流
        Writer w = new OutputStreamWriter( out, charset );

        w.write( "城院吴彦祖不是老王\n" );
        w.flush();

        w.write( "城院带路哥王大爷" );

        w.close();
        out.close();
    }

}
